package com.ruoyi.omp.api;

import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.omp.api.domain.TrendData;
import com.ruoyi.omp.api.domain.TrendType;
import com.ruoyi.omp.api.factory.RemoteTrendFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@FeignClient(contextId = "remoteTrendService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory =
        RemoteTrendFactory.class)
public interface RemoteTrendService {
    /**
     * 新增趋势图数据
     * @return
     */
    @PostMapping(value="/trendType/addTrendData")
    public R addTrendData(@RequestBody TrendData trendData);

    /**
     * 新增趋势图类型
     * @return
     */
    @PostMapping(value="/trendType/addTrendType")
    public R addTrendType(@RequestBody TrendType trendType);

    /**
     * 执行sql字符串
     * @return
     */
    @PostMapping(value="/trendType/execSql")
    public R<List<Map<String, Object>>> execSql(@RequestParam("sqlStr") String sqlStr);

    /**
     * 获取趋势图数据，根据类型
     * @return
     */
    @GetMapping(value = "/trendType/trend_data/{type}")
    public R<Map<String,String>> getTrendDataByType(@PathVariable("type") String type, @RequestParam("limit") Integer limit);

    @GetMapping(value = "/trendType/trend_data_list/{type}")
    public R<List<TrendData>> selectTrendDataByType(@PathVariable("type") String type);

    /**
     * 获取趋势图数据，根据类型和data key
     * @return
     */
    @PostMapping(value="/trendType/getTrendDataByTypeAndKey")
    public R<TrendData> getTrendDataByTypeAndKey(@RequestParam("trendType") String trendType,@RequestParam("key") String key);

    /**
     * 获取趋势图数据，根据类型和data key
     * @return
     */
    @PostMapping(value="/trendType/updateTrendDataValue")
    public R updateTrendDataValue(@RequestParam("trendType") String trendType,@RequestParam("key") String key, @RequestParam("dataValue") String dataValue);


/*

    //修改表单数据
    @PutMapping(value = "/actMaintainOrderData/edit")
    public R editData(@RequestBody ActMaintainOrderData actMaintainOrderData) ;

    //保存表单数据
    @PostMapping(value="/actMaintainOrderData/remote/saveFormData")
    public R<Integer> remoteSaveFormData(@RequestBody ActMaintainOrderDataVO actMaintainOrderDataVO);

    //获取表单数据
    @PostMapping(value = "/actMaintainOrderData/getData")
    public R<ActMaintainOrderDataVO> getData(@RequestBody ActMaintainOrderData actMaintainOrderData) ;

    //查询表单数据
    @PostMapping(value = "/scheduleTask/add")
    public R addScheduleTask(@RequestBody ScheduleTask scheduleTask);
*/

//
//    @GetMapping(value = "/buiRoom/roomInfo/{roomNum}")
//    R<BuiRoom> getBuiRoomByNum(@PathVariable("roomNum") String roomNum);
//
//    /**
//     * 查询房屋详情
//     * @param roomId 房屋id
//     * @return
//     */
//    @GetMapping(value = "/buiRoom/info/{roomId}")
//    R<BuiRoom> getBuiRoom(@PathVariable("roomId") String roomId);
//
//    /**
//     * 修改房屋信息
//     * @param buiRoom 房屋信息
//     * @return
//     */
//    @PostMapping(value = "/buiRoom/updateRoom")
//    R updateRoom(@RequestBody BuiRoom buiRoom);
//
//    /**
//     * 通过租赁记录id查询租赁总面积
//     * @param recordId 租赁记录id
//     * @return
//     */
//    @GetMapping(value = "/buiRoom/sumArea/{recordId}")
//    R<BigDecimal> sumRoomAreaByRecordId(@PathVariable("recordId") String recordId);
//
//    /**
//     * 通过租赁记录id查询房屋数量
//     * @param recordId 租赁记录id
//     * @return
//     */
//    @GetMapping(value = "/buiRoom/countRoom/{recordId}")
//    R<Integer> countRoomByRecordId(@PathVariable("recordId") String recordId);
}
